package com.eastmoney.gamecode.enums;

import com.fasterxml.jackson.annotation.JsonCreator;

/**
 * 移动类型
 *
 * @author
 * @date 2023-09
 */
public enum MapElementEnums {
    B("B", "砖块，可以被子弹击碎"),
    I("I", "铁块，不可以被子弹击碎"),
    T("T", "树木，坦克和子弹可以穿越"),
    W("W", "水流，子弹可以穿过，坦克不可以穿过"),
    A("A", "攻击力加成包，攻击力增长1"),
    O("O", "血量加成包，血量增长10"),
    D("D", "防御力加成包，防御力增加1"),
    G("G", "空地");

    private final String code; // 参数编码
    private final String description; // 参数说明


    MapElementEnums(String code, String description) {
        this.code = code;
        this.description = description;
    }

    @JsonCreator
    MapElementEnums create(String code) {
        return MapElementEnums.valueOf(code);
    }

    public String getDescription() {
        return description;
    }

    public boolean canMove() {
        return this != B && this != I && this != W;

        //砖块可以被击穿后通过
        // return this != I && this != W;
    }

    public boolean isProp() {
        return this == A || this == O || this == D;
    }
}
